﻿using DtoFw.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DtoFw.Query
{

    public class ConfigRequestDto:BaseOperator
    {
        /// <summary>
        /// 未绑定电子标签对象
        /// </summary>
        public NoBindTagDtoWarning noBindTagDtoWarning { get; set; }
        /// <summary>
        /// 未及时入库对象
        /// </summary>
        public OvertimeStockWarning overtimeStockWarning { get; set; }
        /// <summary>
        /// 未及时回库对象
        /// </summary>
        public OvertimeRevertWarning overtimeRevertWarning { get; set; }
        /// <summary>
        /// 异常出库预警
        /// </summary>
        public UnusualLevelWarning unusualLevelWarning { get; set; }
        /// <summary>
        /// 环境预警
        /// </summary>
        public EnvironmentalWarning environmentalWarning { get; set; }
        /// <summary>
        /// 保存超期预警
        /// </summary>
        public OvertimeSaveWarning overtimeSaveWarning { get; set; }
        /// <summary>
        /// 库存容量预警
        /// </summary>
        public StockQuantityWarning stockQuantityWarning { get; set; }
    }

    public class SystemConfigDto : BaseOperator
    {
        /// <summary>
        /// 中文名称
        /// </summary>
        public string CnName { get; set; }
        /// <summary>
        /// 中文名称
        /// </summary>
        public string CnShort { get; set; }
        /// <summary>
        /// 英文名称
        /// </summary>
        public string English { get; set; }
        /// <summary>
        /// Logo
        /// </summary>
        public string Logo { get; set; }
        /// <summary>
        /// 简介
        /// </summary>
        public string Intro { get; set; }
        /// <summary>
        /// COM口 / 网口
        /// </summary>
        public string EnvType { get; set; }
    }


    public class ConfigDto
    {
        /// <summary>
        /// 状态
        /// 是否开启true/false
        /// </summary>
        public bool Status { get; set; }

        /// <summary>
        /// 其他推送人Id集合
        /// </summary>
        public List<string> PopUserCodes { get; set; }
        /// <summary>
        /// 推送内容
        /// 模板
        /// </summary>
        public string PopContent { get; set; }
    }

    /// <summary>
    /// 未绑定电子标签
    /// </summary>
    public class NoBindTagDtoWarning : ConfigDto
    {
        /// <summary>
        /// 物品登记后多久提醒
        /// </summary>
        public int Minute { get; set; }
    }
    /// <summary>
    /// 未及时入库
    /// </summary>

    public class OvertimeStockWarning : ConfigDto
    {
        /// <summary>
        /// 登记后多久开始提醒
        /// </summary>
        public int Minute { get; set; }
    }
    /// <summary>
    /// 未及时回库
    /// </summary>

    public class OvertimeRevertWarning : ConfigDto
    {
        /// <summary>
        /// 回库时间剩余多长时间提醒
        /// </summary>
        public int ResidueMinute { get; set; }
        public bool ResidueChecked { get; set; }
        /// <summary>
        /// 回库时间逾期多久提醒
        /// </summary>

        public int BeOverdueMinute { get; set; }
        public bool BeOverdueChecked { get; set; }
    }

    /// <summary>
    /// 保存超期提醒
    /// </summary>
    public class OvertimeSaveWarning : ConfigDto
    {
        /// <summary>
        /// 剩余多长时间提醒
        /// </summary>
        public int ResidueMinute { get; set; }
        public bool ResidueChecked { get; set; }
        /// <summary>
        /// 逾期多久提醒
        /// </summary>

        public int BeOverdueMinute { get; set; }
        public bool BeOverdueChecked { get; set; }

        /// <summary>
        /// 处置意见时间 单位小时
        /// </summary>
        public int ResidueHour { get; set; }

        /// <summary>
        /// 处置意见推送内容
        /// </summary>
        public string NpopContent { get; set; }
    }

    /// <summary>
    /// 库存容量预警
    /// </summary>
    public class StockQuantityWarning : ConfigDto
    {
        /// <summary>
        /// 大于等于容间隔多久执行一次
        /// </summary>
        public int GreaterOrEqualVolumeMinute { get; set; }

        /// <summary>
        /// 小于容量
        /// </summary>
        public double GreaterOrEqualVolume { get; set; }
        public bool GreaterOrEqualVolumeChecked { get; set; }

        /// <summary>
        /// 小于容量
        /// </summary>
        public double LessVolume { get; set; }
        /// <summary>
        /// 小于容量后每几分钟提醒一次
        /// </summary>
        public int LessVolumeMinute { get; set; }
        public bool LessVolumeChecked { get; set; }

    }

    /// <summary>
    /// 异常出库提醒
    /// </summary>
    public class UnusualLevelWarning : ConfigDto
    {

    }

    /// <summary>
    /// 环境预警
    /// </summary>
    public class EnvironmentalWarning : ConfigDto
    {
        /// <summary>
        /// 最低温度
        /// </summary>
        public double LowTemperature { get; set; }
        /// <summary>
        /// 最高温度
        /// </summary>
        public double TallTemperature { get; set; }
        /// <summary>
        /// 间隔
        /// </summary>
        public int TemperatureMinute { get; set; }
        /// <summary>
        /// 温度推送内容
        /// </summary>
        public string TemperatureContent { get; set; }
        public bool TemperaturChecked { get; set; }


        /// <summary>
        /// 最低湿度
        /// </summary>
        public double LowHumidity { get; set; }
        /// <summary>
        /// 最高湿度
        /// </summary>
        public double TallHumidity { get; set; }
        /// <summary>
        /// 间隔
        /// </summary>
        public int HumidityMinute { get; set; }

        /// <summary>
        /// 湿度推送内容
        /// </summary>
        public string HumidityContent { get; set; }
        public bool HumidityChecked { get; set; }


        /// <summary>
        /// 烟感隔多久提醒一次
        /// </summary>
        public int SmogMinute { get; set; }
        public string SmogContent { get; set; }
        public bool SmogChecked { get; set; }

        /// <summary>
        /// 水侵多久提醒一次
        /// </summary>
        public int WaterMinute { get; set; }
        public string WaterContent { get; set; }
        public bool WaterChecked { get; set; }

        /// <summary>
        /// 空气最低
        /// </summary>
        public double LowAir { get; set; }
        /// <summary>
        /// 空气最高
        /// </summary>
        public double TallAir { get; set; }
        /// <summary>
        /// 间隔
        /// </summary>
        public int AirMinute { get; set; }
        /// <summary>
        /// 湿度推送内容
        /// </summary>
        public string AirContent { get; set; }
        public bool AirChecked { get; set; }
    }

    /// <summary>
    /// 硬件配置
    /// </summary>
    public class ConfigSettingDto :BaseOperator
    {
        public string Class { get; set; }
        public string ClassName { get; set; }
        public Dictionary<string, string> keyValuePairs { get; set; }
    }

    /// <summary>
    /// 审批流程
    /// </summary>
    public class ApproveDto : BaseOperator
    {
        public Dictionary<string, string> keyValuePairs { get; set; }
    }

    public class HandwareConfigDto : BaseOperator
    {
        /// <summary>
        /// 配置字符串
        /// </summary>
        public string configJson { get; set; }
    }
}
